package org.opens.flowable.linstener;

import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;

/**
 * 自定义监听器
 */
public class MyTaskListener implements TaskListener {

    /**
     * 监听器触发的方法
     * @param delegateTask
     */
    @Override
    public void notify(DelegateTask delegateTask) {
        // 获取流程变量
        String identificationCode = (String) delegateTask.getVariable("identificationCode");
        System.out.println("identificationCode是：" + identificationCode);

        System.out.println("监听器MyTaskListener触发了: " + delegateTask.getName());
        if ("发起请假流程".equals(delegateTask.getName()) && "create".equals(delegateTask.getEventName())) {
            // 满足触发条件的事件, 就来设置assignee
            delegateTask.setAssignee("xiaoming");
        } else {
            delegateTask.setAssignee("xiaoli");
        }
    }

}
